/**
  ******************************************************************************
  * @文件名           : fml_pid.h
  * @作者             : citunhk
  * @功能介绍         : PID算法
  *	@日期             : 2022.11.15
  ******************************************************************************
  * @注意
  *
  *
  *
  ******************************************************************************
  *更改记录
  *日期 修改人 修改内容
  *
  *
  *
  ******************************************************************************
  */
#ifndef __FML_PID_H
#define __FML_PID_H

#include "main.h"

enum
{
	level_01,
	level_02,
	level_03,
	level_04,
	level_05,
	level_quantity
};

typedef union _PID_Type
{
	uint8_t Box[360];//计算下面结构体的大小
	struct
	{
		//温度相关
		float TErr;		//偏差值
		float TErr1;		//上一次偏差值
		float TErr2;		//再上一次的偏差值
		float TKP;			//比例系数
		float TTI;			//积分时间
		float TTD;			//微分时间
		float TT;			//采样周期
		float TKI;			//积分系数
		float TKD;			//微分系数

		//流量相关
		float FErr;		//偏差值
		float FErr1;		//上一次偏差值
		float FErr2;		//再上一次的偏差值
		float FKP;			//比例系数
		float FTI;			//积分时间
		float FTD;			//微分时间
		float FT;			//采样周期
		float FKI;			//积分系数
		float FKD;			//微分系数
	}Per[level_quantity];
}PID_Type;//各段PID参数

extern PID_Type PID;

void FML_PID_Restoru(void);
void FML_PIDParameterDeinit(void);
float FML_PID_TempOperation(void);
void FML_PWM_Out(void);
float FML_PID_FlowOperation(void);
float FML_PID_PressOperation(void);

#endif









